package system

import (
	"errors"
	"go-iot/app/models"
	"go-iot/app/common/mysql"
	"time"
	"gorm.io/gorm"
)

func AddSysconfig(ob *models.SystemConfig) error {
	// 检查ID是否已存在
	var existingConfig models.SystemConfig
	result := mysql.DB.Where("id = ?", ob.Id).First(&existingConfig)
	if result.Error == nil {
		return errors.New("id exist")
	} else if !errors.Is(result.Error, gorm.ErrRecordNotFound) {
		return result.Error
	}
	
	// 设置创建时间
	ob.CreateTime = time.Now()
	
	// 插入数据
	return mysql.DB.Create(ob).Error
}

func UpdateSysconfig(ob *models.SystemConfig) error {
	// 更新配置数据，只更新config字段
	return mysql.DB.Model(ob).Updates(map[string]interface{}{
		"config": ob.Config,
	}).Error
}

func GetSysconfig(id string) (*models.SystemConfig, error) {
	var config models.SystemConfig
	
	result := mysql.DB.Where("id = ?", id).First(&config)
	if result.Error != nil {
		if errors.Is(result.Error, gorm.ErrRecordNotFound) {
			return nil, nil
		}
		return nil, result.Error
	}
	
	return &config, nil
}
